package van.planifolia.demo03;

import org.junit.Test;
import van.planifolia.demo02.Message;

/**
 * Created by Intellij IDEA<br>
 * 测试泛型通配符上下限
 * @author Planifolia.Van
 * @version 1.0
 * @date 2022/10/25 16:56
 */
public class MessageTestSp {

    @Test
    public void test01(){
        Message<String,Integer> message = new Message<>("你好Planifolia",123);
        this.show(message);
    }

    @Test
    public void test02(){
        Message<Object,Double> message = new Message<>(new Object(),1.23);
        this.show(message);
    }

    /**
     * 工具方法，要求传入的message的第一个泛型必须为String或者是String的父类，第二个泛型必须为Number子类或者为Number
     * 如果传入其他泛型的Message对象就会报编译时异常
     * @param message 传入的Message对象
     */
    private void show(Message<? super String,? extends Number> message){
        message.print();
    }

}
